
# ifndef __DFX_AUDIO_DEVICE_OAL_H__
# define __DFX_AUDIO_DEVICE_OAL_H__

# include "dfxAudioDevice.h"

# include <al.h>
# include <alc.h>

namespace DFX
{
    class AudioDevice_OAL : public AudioDevice
    {
    private:

        ALCdevice     *mDevice;
        ALCcontext    *mContext;

    public:

        AudioDevice_OAL();
        ~AudioDevice_OAL();

        ALCdevice* GetDevice() const
        {
            return mDevice;
        }

        ALCcontext* GetContext() const
        {
            return mContext;
        }

        DFXRESULT Initialize();
        DFXRESULT Destroy();

        AudioSource* CreateAudioSource();
    };
}

# endif